在 Day 1,我提到這個系列不是從零開發一個新的 App,而是回頭重讀大一時完成的 Android 專題- RoomRush。
不過,既然這個系列會使用 Hermes Agent,就一定會遇到一個問題:我到底是在學習,還是在讓 AI 幫我完成工作?
平常使用 AI 時,很容易讓人產生一種「我好像懂了」的錯覺:它可以快速整理檔案、解釋程式碼、列出架構,甚至把一段原本很混亂的內容講得很有條理。
然而,如果我只是看過它的解釋,沒有自己回到程式碼確認,也不能用自己的話說明,那其實只是把「不懂」包裝成「看起來懂」。
所以在這個系列裡,我不想把 Hermes Agent 當成代寫內容的工具,我希望它更像是一個讀 code 的學習夥伴:幫我拆解問題、提醒我哪裡需要驗證、指出我可能看漏的地方,甚至在我以為自己懂了的時候,反過來檢查我的理解是否正確。
使用 AI 來幫助我讀懂整份專案,聽起來固然很簡單、方便,但最大的風險是:我真的有理解嗎,還是我只是自以為自己懂了?
AI 雖然可以很快且很詳細的解釋程式碼,但如果我沒有經過認真的思考,那其實這對我說沒什麼價值,只是認為自己會了罷了。因此,我在讓 Hermes 幫助我讀懂專案時,事前來回溝通了很多細節,讓我可以消化學習內容,透過問答的方式,能更加深我對專案的印象。
在這個系列裡,我使用的是 Hermes Agent,而不是只把問題丟給一般 AI 聊天機器人。
對我來說,一般 AI 比較像是「問答工具」。
我貼上一段程式碼,問它這段在做什麼,它可以很快整理出一段說明。這很方便,但如果我只是看過它的回答,沒有自己回到程式碼確認,就很容易產生一種「我好像懂了」的錯覺。
AI Agent 比較不同的是,它可以協助我完成一整段工作流程。
例如:讀取實際檔案、整理檔案關係、追蹤資料流、檢查我自己的回答,甚至把每次理解整理成筆記或文章素材。
我自己會這樣比較:
| 比較項目 | 一般 AI | AI Agent |
|---|---|---|
| 工作方式 | 回答單一問題 | 協助完成一段流程 |
| 資料來源 | 多半依賴我貼上的內容 | 可以協助讀取實際檔案 |
| 對我的幫助 | 讓我快速得到說明 | 讓我逐步確認自己是否理解 |
| 學習風險 | 容易變成看答案 | 仍有依賴風險,但比較能設計驗證 步驟和工作流程 |
| 我的角色 | 容易變成接收者 | 必須參與判斷與修正 |
這樣比較下來,我認為 Hermes Agent 可以更符合我對重讀專案的需求,
儘管如此,AI Agent 不是魔法。
它不是一定正確,也不能替我完成理解。如果我只是複製它整理好的內容,那它仍然會變成另一種代寫工具。
在這個系列裡,我會讓 Hermes Agent 協助我做幾件事:
雖然我會使用 Hermes Agent,但有些事情我不希望完全交給它:
我的使用方式:不是問「幫我解釋」,而是問「請逼我確認」
我不希望自己只是問:
請幫我解釋這個檔案。
就讓 Hermes 產生整份檔案的解釋和用意,因為這樣會變成只是我被動接收答案。
我更希望使用這種問法:
透過這種方式,每當我詢問某個檔案時,Hermes Agent 就會有一個固定的工作流程來幫助我讀懂專案。
對我來說,AI Agent 的價值不在於它幫我省掉理解,而是它讓「理解」這件事變得有流程、有檢查點,也比較不容易只停在看答案。
下一篇開始,我會正式進入 RoomRush 的程式碼。目前理解專案的順序是:
AndroidManifest.xml
→ MainActivity.kt
→ QueryResultActivity.kt
→ QueryResultViewModel.kt
→ EmptyRoomAdapter.kt
→ RoomDetailActivity.kt
→ RoomDetailViewModel.kt
→ 使用者查詢流程總結
這條線會幫我看懂使用者從打開 App、選大樓、查詢空教室,到點進教室詳細頁,中間經過哪些檔案。
ClassroomSchedule.kt
→ ClassroomScheduleDao.kt
→ ClassroomScheduleRepository.kt
→ AppDatabase.kt
→ EmptyRoomFinderApp.kt
→ AppContainer.kt
→ 資料來源主線總結
這條線會幫我看懂課表資料從 CSV 進來後,如何變成 Room Database 裡的資料,又如何透過 DAO、Repository 提供給 ViewModel 使用。
LoginActivity.kt
→ ManagerActivity.kt
→ LessonManageActivity.kt
→ LessonManageViewModel.kt
→ AllClassroomsActivity.kt
→ AllClassroomsAdapter.kt
→ ClassroomScheduleDetailActivity.kt
→ ClassroomChooseManageActivity.kt
→ ClassroomManageActivity.kt
→ 管理者功能總結
這條線會幫我看懂管理者如何登入後台、修改課表、新增或編輯教室資料,也會讓我檢查資料保存、安全性與可維護性上的技術債。
我想先從 Android 專案最外層的入口開始看,也就是 AndroidManifest.xml。
它就像是 App 的目錄和登記元件及入口,裡面記錄了有哪些 Activity、哪個畫面是啟動入口,以及 App 需要哪些基本設定。
如果連入口都沒有看懂,後面直接跳進某個 Activity,其實很容易迷路。